package com.jzo2o.foundations.service;


import com.jzo2o.foundations.model.dto.response.ServeAggregationSimpleResDTO;
import com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO;
import com.jzo2o.foundations.model.dto.response.ServeCategoryResDTO;
import com.jzo2o.foundations.model.dto.response.ServeSimpleResDTO;

import java.util.List;

/**
 * 首页查询相关功能
 *
 * @author itcast
 * @create 2023/8/21 10:55
 **/
public interface HomeService {
    /**
     * 根据区域id获取服务图标信息
     *
     * @param regionId 区域id
     * @return 服务图标列表
     */
    List<ServeCategoryResDTO> queryServeIconCategoryByRegionIdCache(Long regionId);

    /**
     * 根据区域id获取服务类型列表
     *
     * @param regionId 区域id
     * @return 服务类型列表
     */
    List<ServeAggregationTypeSimpleResDTO> queryServeTypeList(Long regionId);

    /**
     * 根据区域id获取热门服务列表
     *
     * @param regionId 区域id
     * @return 服务类型列表
     */
    List<ServeAggregationSimpleResDTO> hotServeList(Long regionId);

    /**
     * 根据服务id获取服务详情
     *
     * @param id 服务id
     * @return 服务详情
     */
    ServeAggregationSimpleResDTO serveDetail(Long id);

    /**
     * 根据城市编码、服务类型id、关键词搜索服务列表
     *
     * @param cityCode   城市编码
     * @param serveTypeId 服务类型id
     * @param keyword    关键词
     * @return 服务列表
     */
    List<ServeSimpleResDTO> findServeList(String cityCode, Long serveTypeId, String keyword);
}